package com.glsc.ngateway.common.base.domain.mysql.gateway.system;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;

@Entity
@Data
@Table(name = "t_gw_system_member")
@org.hibernate.annotations.Table(appliesTo = "t_gw_system_member",comment = "系统项目人员信息表")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SystemMember implements Serializable {

    @ApiModelProperty(value = "主键")
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", columnDefinition = "int comment '主键'")
    private Integer id;

    @ApiModelProperty(value = "项目ID")
    @Column(name = "op_id", columnDefinition = "int comment '项目ID'")
    private Integer opId;

    @ApiModelProperty(value = "项目成员账号")
    @Column(name = "member_account", columnDefinition = "varchar(20) comment '项目成员账号'")
    private String memberAccount;

    @ApiModelProperty(value = "项目成员姓名")
    @Column(name = "member_name", columnDefinition = "varchar(20) comment '项目成员姓名'")
    private String memberName;

    @ApiModelProperty(value = "成员角色 数据字典 t_system_member_type ")
    @Column(name = "member_type", columnDefinition = "varchar(10) comment '成员角色 数据字典 t_system_member_type '")
    private String memberType;

    @ApiModelProperty(value = "状态")
    @Column(name = "status", columnDefinition = "char(10) comment '状态'")
    private String status;

    @ApiModelProperty(value = "加入时间")
    @Column(name = "join_date", columnDefinition = "varchar(10) comment '加入时间'")
    private String joinDate;

    @ApiModelProperty(value = "离开时间")
    @Column(name = "expire_date", columnDefinition = "varchar(10) comment '离开时间'")
    private String expireDate;

    @ApiModelProperty(value = "删除状态")
    @Column(name = "deleted", columnDefinition = "int(1) comment '删除状态'")
    private Integer deleted;

}
